package ec.edu.ucacue.siop.proceso.iniciar.lectores;

import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.List;
import java.util.StringTokenizer;

import jxl.Sheet;
import jxl.Workbook;
import jxl.read.biff.BiffException;
import ec.edu.ucacue.siop.proceso.calculoBorrar.Cont24horas;
import ec.edu.ucacue.siop.proceso.calculoBorrar.ContDatos;

public class LectorExcelCrudCem {
	private List<Cont24horas> listaVarDiaria = new ArrayList<Cont24horas>();
	String error;
	public List<Cont24horas> getListaVarDiaria() {
		return listaVarDiaria;
	}
	public void setListaVarDiaria(List<Cont24horas> listaVarDiaria) {
		this.listaVarDiaria = listaVarDiaria;
	}
	public String getError() {
		return error;
	}
	public void setError(String error) {
		this.error = error;
	}
	
	public boolean leer(String nomArchivo, String nomHoja, String a_o, int filaInicial, int filaFinal){
		
		System.out.println("Leyendo " + nomArchivo);
		File archivo = new File(nomArchivo);
		try {
			Workbook excel = Workbook.getWorkbook(archivo);
			int posFecha = nomArchivo.indexOf(a_o);
			String nomFecha = nomArchivo.substring(posFecha, posFecha+10);
			StringTokenizer tokenFecha = new StringTokenizer(nomFecha,"-");
			int year = Integer.parseInt(tokenFecha.nextToken());
			int mes = Integer.parseInt(tokenFecha.nextToken()) -1;
			int dia = Integer.parseInt(tokenFecha.nextToken());
			
			Sheet hoja = excel.getSheet(nomHoja);
			for(int j=filaInicial; j<filaFinal; j++){
				Cont24horas fila = new Cont24horas();
				int hora = 0;
				for(int i=3; i<27; i++) {
					String lectura = hoja.getCell(i, j).getContents();
					hora = i-3;
					ContDatos contedatos = new ContDatos();
					Calendar fecha = Calendar.getInstance();
					fecha.set(year, mes, dia, hora, 0);
					contedatos.setFecha(fecha);
					try{
						lectura = lectura.replace(",", ".");
						contedatos.setValor(Float.parseFloat(lectura));
						fila.getContenido().add(contedatos);
						}
					catch(NumberFormatException ex){
					}
				}
				listaVarDiaria.add(fila);
			}

		} catch (BiffException e) {
			error = "No se puede abrir el archivo " + nomArchivo;
			e.printStackTrace();
			return false;
		} catch (IOException e) {
			error = "No se puede abrir el archivo " + nomArchivo;
			e.printStackTrace();
			return false;
		}
			
		
		return true;
	}
}
